 SBTL '16-SECTOR MSWAIT'
**************************
*   MSWAIT SUBROUTINE    *
**************************
*                        *
*  DELAYS A SPECIFIED    *
*   NUMBER OF 100 USEC   *
*   INTERVALS FOR MOTOR  *
*   ON TIMING.           *
*                        *
*   ---- ON ENTRY ----   *
*  A-REG: HOLDS NUMBER   *
*        OF 100 USEC     *
*        INTERVALS TO    *
*        DELAY.          *
*                        *
*   ---- ON EXIT -----   *
*  A-REG: HOLDS $00.     *
*  X-REG: HOLDS $00.     *
*  Y-REG: UNCHANGED.     *
*  CARRY: SET.           *
*                        *
*  MONTIMEL, MONTIMEH    *
*   ARE INCREMENTED ONCE *
*   PER 100 USEC INTERVAL*
*   FOR MOTON ON TIMING. *
*   ---- ASSUMES ----    *
*   1 USEC CYCLE TIME    *
**************************
 DS 3,0 ;AVOID PAGE BOUNDARY CROSSING...
MSWAIT LDX #$11
MSW1 DEX DELAY 86 USEC.
 BNE MSW1
 INC MONTIMEL
 BNE MSW2 DOUBLE-BYTE
 INC MONTIMEH   INCREMENT.
MSW2 SEC
 SBC #$1 DONE 'N' INTERVALS?
 BNE MSWAIT (A-REG COUNTS)
 RTS
AEC1 EQU * ;TELL RELOCATOR WHERE CORE ENDS
**************************
*  PHASE ON-, OFF-TIME   *
*   TABLES IN 100-USEC   *
*   INTERVALS. (SEEK)    *
**************************
ONTABLE DFB 1,$30,$28
 DFB $24,$20,$1E
 DFB $1D,$1C,$1C
 DFB $1C,$1C,$1C
OFFTABLE DFB $70,$2C,$26
 DFB $22,$1F,$1E
 DFB $1D,$1C,$1C
 DFB $1C,$1C,$1C
 SBTL '16-SECTOR NYBBLE TABLES'
***************************
*                         *
*     6-BIT TO 7-BIT      *
*  NIBL CONVERSION TABLE  *
*                         *
***************************
*                         *
*   CODES WITH MORE THAN  *
*   ONE PAIR OF ADJACENT  *
*    ZEROES OR WITH NO    *
*   ADJACENT ONES (EXCEPT *
*     B7) ARE EXCLUDED.   *
*                         *
*  THIS TABLE MAY *NOT*   *
*  CROSS A PAGE BOUNDARY! *
*                         *
***************************
NIBL DFB $96,$97,$9A
 DFB $9B,$9D,$9E
 DFB $9F,$A6,$A7
 DFB $AB,$AC,$AD
 DFB $AE,$AF,$B2
 DFB $B3,$B4,$B5
 DFB $B6,$B7,$B9
 DFB $BA,$BB,$BC
 DFB $BD,$BE,$BF
 DFB $CB,$CD,$CE
 DFB $CF,$D3,$D6
 DFB $D7,$D9,$DA
 DFB $DB,$DC,$DD
 DFB $DE,$DF,$E5
 DFB $E6,$E7,$E9
 DFB $EA,$EB,$EC
 DFB $ED,$EE,$EF
 DFB $F2,$F3,$F4
 DFB $F5,$F6,$F7
 DFB $F9,$FA,$FB
 DFB $FC,$FD,$FE
 DFB $FF
 PAGE
***************************
*      7-BIT TO 6-BIT     *
*     'DENIBLIZE' TABL    *
*    (16-SECTOR FORMAT)   *
*                         *
*       VALID CODES       *
*     $96 TO $FF ONLY.    *
*                         *
*                         *
*   CODES WITH MORE THAN  *
*   ONE PAIR OF ADJACENT  *
*    ZEROES OR WITH NO    *
*   ADJACENT ONES (EXCEPT *
*    BIT 7) ARE EXCLUDED. *
*                         *
* THIS TABLE *MUST* BE    *
* ALIGNED AT THE END OF   *
* A PAGE IN MEMORY!!!     *
***************************
XP EQU <* ;CURRENT PAGE ADDRESS
DNIBL EQU 256*XP ;DNIBL TABLE PAGE
 PAGE
*********************************************** 
*
* GHOST APPEND BUG PATCH BY
* BILL GRIMM 
*
*********************************************** 
PSC1 EQU  * ;Tell relocater where to start
MOVEOF EQU *
 LDX CMDNO ; GET CMD NUMBER
 CPX #$1C ; APPEND COMMAND?
 BEQ GOON ; YES, RETURN TO CALLING ROUTINE
 LDX #$00 ; NO, THEN CLEAR X
 STX EOFFLAG ; CLEAR EOF FLAG
GOON RTS
 SKP 4
*********************************************** 
*
* TURN Apple //e 80 COLUMN CARD
* OFF & INIT APPLE
*
*********************************************** 
OFF80 EQU *
 LDA #$FF
 STA $4FB ; CLEARS FUNNY 80 COL STUFF
 STA $C00C ; TURNS 80 COL OFF
 STA $C00E ; TURN OFF ALT CHAR SET
 JMP $FB2F ; MONITOR INIT ROUTINE
 PAGE
PEC1 EQU * ;Tell relocater where to stop
PD1 EQU >*
PD2 EQU $96-PD1
 DS PD2,0 ;Must pad to $XX96
 DFB $00,$01,$98
 DFB $99,$02,$03
 DFB $9C,$04,$05
 DFB $06,$A0,$A1
 DFB $A2,$A3,$A4
 DFB $A5,$07,$08
 DFB $A8,$A9,$AA
 DFB $09,$0A,$0B
 DFB $0C,$0D,$B0
 DFB $B1,$0E,$0F
 DFB $10,$11,$12
 DFB $13,$B8,$14
 DFB $15,$16,$17
 DFB $18,$19,$1A
 DFB $C0,$C1,$C2
 DFB $C3,$C4,$C5
 DFB $C6,$C7,$C8
 DFB $C9,$CA,$1B
 DFB $CC,$1C,$1D
 DFB $1E,$D0,$D1
 DFB $D2,$1F,$D4
 DFB $D5,$20,$21
 DFB $D8,$22,$23
 DFB $24,$25,$26
 DFB $27,$28,$E0
 DFB $E1,$E2,$E3
 DFB $E4,$29,$2A
 DFB $2B,$E8,$2C
 DFB $2D,$2E,$2F
 DFB $30,$31,$32
 DFB $F0,$F1,$33
 DFB $34,$35,$36
 DFB $37,$38,$F8
 DFB $39,$3A,$3B
 DFB $3C,$3D,$3E
 DFB $3F
 PAGE
***************************
*                         *
*    NYBBLE BUFFERS       *
*                         *
* NBUF1 (256 BYTES) MUST  *
*  BE ALIGNED ON A PAGE   *
*  BOUNDARY.              *
*                         *
* NBUF2 (86 BYTES) MUST   *
*  BE ALIGNED ON A PAGE   *
*  BOUNDARY.              *
*                         *
***************************
*
NBUF1 DS 256,0 ;NBUF1
NBUF2 DS 86,0 ;NBUF2
